]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
backgroundMenu: Release the click gesture if a grab operation begun
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 25 Jun 2014 15:53:37 +0000 (17:53 +0200)
committerJasper St. Pierre <jstpierre@mecheye.net>
Tue, 8 Jul 2014 16:01:43 +0000 (12:01 -0400)
If an active grab on pointer events happens during multi-touch operations,
all non-pointer-emulating touches will be muted. This may leave the
Clutter.ClickAction incomplete if triggered by one of those sequences,
just to have a gesture take over and trigger a compositor grab, which would
leave the capture-event handler stuck eating events.

So listen for grab-op-begin from the display, and ensure the action is
released if such grab begins.
and the capture event handler stuck.

js/ui/backgroundMenu.js

index b3dec1ce2e7685be1785aef4a50e1730f316dd9a..d9341f576df0a2c2550c7c98fb22fc8d0358a01e 100644 (file)
@@ -55,9 +55,14 @@ function addBackgroundMenu(actor, layoutManager) {
     });
     actor.add_action(clickAction);
 
+    let grabOpBeginId = global.display.connect('grab-op-begin', function () {
+        clickAction.release();
+    });
+
     actor.connect('destroy', function() {
         actor._backgroundMenu.destroy();
         actor._backgroundMenu = null;
         actor._backgroundManager = null;
+        global.display.disconnect(grabOpBeginId);
     });
 }